<html>
<head>
  <link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
  <div class="main">
    <h1>Namespace: joker.os</h1>
    <span class="var-added">v1.0</span>
    <h2>Contents</h2>
    <ul>
      <li>
        <a href="#_summary">Summary</a>
      </li>
      <li>
        <a href="#_index">Index</a>
      </li>
      <li>
        <a href="#_constants">Constants</a>
      </li>
      <li>
        <a href="#_variables">Variables</a>
      </li>
      <li>
        <a href="#_functions">Functions, Macros, and Special Forms</a>
      </li>
    </ul>
    <h2 id="_summary">Summary</h2>
    <p class="var-docstr">Provides a platform-independent interface to operating system functionality.</p>
    <h2 id="_index">Index</h2>
    <ul class="index">
      <li>
  <a href="#SIGABRT">SIGABRT</a>
</li>
<li>
  <a href="#SIGALRM">SIGALRM</a>
</li>
<li>
  <a href="#SIGFPE">SIGFPE</a>
</li>
<li>
  <a href="#SIGHUP">SIGHUP</a>
</li>
<li>
  <a href="#SIGILL">SIGILL</a>
</li>
<li>
  <a href="#SIGINT">SIGINT</a>
</li>
<li>
  <a href="#SIGKILL">SIGKILL</a>
</li>
<li>
  <a href="#SIGPIPE">SIGPIPE</a>
</li>
<li>
  <a href="#SIGQUIT">SIGQUIT</a>
</li>
<li>
  <a href="#SIGSEGV">SIGSEGV</a>
</li>
<li>
  <a href="#SIGTERM">SIGTERM</a>
</li>
<li>
  <a href="#SIGTRAP">SIGTRAP</a>
</li>
<li>
  <a href="#args">args</a>
</li>
<li>
  <a href="#chdir">chdir</a>
</li>
<li>
  <a href="#chmod">chmod</a>
</li>
<li>
  <a href="#chown">chown</a>
</li>
<li>
  <a href="#chtimes">chtimes</a>
</li>
<li>
  <a href="#clearenv">clearenv</a>
</li>
<li>
  <a href="#close">close</a>
</li>
<li>
  <a href="#create">create</a>
</li>
<li>
  <a href="#create-temp">create-temp</a>
</li>
<li>
  <a href="#cwd">cwd</a>
</li>
<li>
  <a href="#egid">egid</a>
</li>
<li>
  <a href="#env">env</a>
</li>
<li>
  <a href="#euid">euid</a>
</li>
<li>
  <a href="#exec">exec</a>
</li>
<li>
  <a href="#executable">executable</a>
</li>
<li>
  <a href="#exists?">exists?</a>
</li>
<li>
  <a href="#exit">exit</a>
</li>
<li>
  <a href="#expand-env">expand-env</a>
</li>
<li>
  <a href="#get-env">get-env</a>
</li>
<li>
  <a href="#gid">gid</a>
</li>
<li>
  <a href="#groups">groups</a>
</li>
<li>
  <a href="#hostname">hostname</a>
</li>
<li>
  <a href="#kill">kill</a>
</li>
<li>
  <a href="#lchown">lchown</a>
</li>
<li>
  <a href="#link">link</a>
</li>
<li>
  <a href="#ls">ls</a>
</li>
<li>
  <a href="#lstat">lstat</a>
</li>
<li>
  <a href="#mkdir">mkdir</a>
</li>
<li>
  <a href="#mkdir-all">mkdir-all</a>
</li>
<li>
  <a href="#mkdir-temp">mkdir-temp</a>
</li>
<li>
  <a href="#open">open</a>
</li>
<li>
  <a href="#pagesize">pagesize</a>
</li>
<li>
  <a href="#path-separator?">path-separator?</a>
</li>
<li>
  <a href="#pid">pid</a>
</li>
<li>
  <a href="#ppid">ppid</a>
</li>
<li>
  <a href="#read-link">read-link</a>
</li>
<li>
  <a href="#remove">remove</a>
</li>
<li>
  <a href="#remove-all">remove-all</a>
</li>
<li>
  <a href="#rename">rename</a>
</li>
<li>
  <a href="#set-env">set-env</a>
</li>
<li>
  <a href="#sh">sh</a>
</li>
<li>
  <a href="#sh-from">sh-from</a>
</li>
<li>
  <a href="#signal">signal</a>
</li>
<li>
  <a href="#start">start</a>
</li>
<li>
  <a href="#stat">stat</a>
</li>
<li>
  <a href="#symlink">symlink</a>
</li>
<li>
  <a href="#temp-dir">temp-dir</a>
</li>
<li>
  <a href="#truncate">truncate</a>
</li>
<li>
  <a href="#uid">uid</a>
</li>
<li>
  <a href="#unset-env">unset-env</a>
</li>
<li>
  <a href="#user-cache-dir">user-cache-dir</a>
</li>
<li>
  <a href="#user-config-dir">user-config-dir</a>
</li>
<li>
  <a href="#user-home-dir">user-home-dir</a>
</li>

    </ul>
    <h2 id="_constants">Constants</h2>
    Constants are variables with <tt>:const true</tt> in their metadata. Joker currently does not recognize them as special; as such, it allows redefining them or their values.
    <ul>
      <li>
  <h3 class="Constant" id="SIGABRT">SIGABRT</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGABRT</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGALRM">SIGALRM</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGALRM</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGFPE">SIGFPE</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGFPE</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGHUP">SIGHUP</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGHUP</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGILL">SIGILL</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGILL</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGINT">SIGINT</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGINT</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGKILL">SIGKILL</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGKILL</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGPIPE">SIGPIPE</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGPIPE</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGQUIT">SIGQUIT</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGQUIT</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGSEGV">SIGSEGV</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGSEGV</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGTERM">SIGTERM</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGTERM</p>
  
  
</li>
<li>
  <h3 class="Constant" id="SIGTRAP">SIGTRAP</h3>
  <span class="var-kind Constant">Int</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">SIGTRAP</p>
  
  
</li>

    </ul>
    <h2 id="_variables">Variables</h2>
    <ul>
      (None.)
    </ul>
    <h2 id="_functions">Functions, Macros, and Special Forms</h2>
    <ul>
      <li>
  <h3 class="Function" id="args">args</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(args)</code></div>
</pre>
  <p class="var-docstr">Returns a sequence of the command line arguments, starting with the program name (normally, joker).</p>
  
  
</li>
<li>
  <h3 class="Function" id="chdir">chdir</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(chdir dirname)</code></div>
</pre>
  <p class="var-docstr">Changes the current working directory to the named directory.</p>
  
  
</li>
<li>
  <h3 class="Function" id="chmod">chmod</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(chmod name mode)</code></div>
</pre>
  <p class="var-docstr">Changes the mode of the named file to mode. If the file is a symbolic link, it changes the mode of the link&#39;s target.</p>
  
  
</li>
<li>
  <h3 class="Function" id="chown">chown</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(chown name uid gid)</code></div>
</pre>
  <p class="var-docstr">Changes the numeric uid and gid of the named file. If the file is a symbolic link,<br>
  it changes the uid and gid of the link&#39;s target. A uid or gid of -1 means to not change that value.</p>
  
  
</li>
<li>
  <h3 class="Function" id="chtimes">chtimes</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(chtimes name atime mtime)</code></div>
</pre>
  <p class="var-docstr">Changes the access and modification times of the named file, similar to the Unix utime() or utimes() functions.</p>
  
  
</li>
<li>
  <h3 class="Function" id="clearenv">clearenv</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(clearenv)</code></div>
</pre>
  <p class="var-docstr">Deletes all environment variables.</p>
  
  
</li>
<li>
  <h3 class="Function" id="close">close</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(close f)</code></div>
</pre>
  <p class="var-docstr">Closes the file, rendering it unusable for I/O.</p>
  
  
</li>
<li>
  <h3 class="Function" id="create">create</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(create name)</code></div>
</pre>
  <p class="var-docstr">Creates the named file with mode 0666 (before umask), truncating it if it already exists.</p>
  
  
</li>
<li>
  <h3 class="Function" id="create-temp">create-temp</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(create-temp dir pattern)</code></div>
</pre>
  <p class="var-docstr">Creates a new temporary file in the directory dir, opens the file for reading and writing,<br>
  and returns the resulting File. The filename is generated by taking pattern and adding a<br>
  random string to the end. If pattern includes a &#34;*&#34;, the random string replaces the last &#34;*&#34;.<br>
  If dir is the empty string, uses the default directory for temporary files (see joker.os/temp-dir).<br>
  Multiple programs calling joker.os/make-temp-file simultaneously will not choose the same file.<br>
  The caller can use (name f) to find the pathname of the file.<br>
  It is the caller&#39;s responsibility to remove the file when no longer needed.</p>
  
  
</li>
<li>
  <h3 class="Function" id="cwd">cwd</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(cwd)</code></div>
</pre>
  <p class="var-docstr">Returns a rooted path name corresponding to the current directory. If the current directory can<br>
  be reached via multiple paths (due to symbolic links), cwd may return any one of them.</p>
  
  
</li>
<li>
  <h3 class="Function" id="egid">egid</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(egid)</code></div>
</pre>
  <p class="var-docstr">Returns the numeric effective group id of the caller.</p>
  
  
</li>
<li>
  <h3 class="Function" id="env">env</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(env)</code></div>
</pre>
  <p class="var-docstr">Returns a map representing the environment.</p>
  
  
</li>
<li>
  <h3 class="Function" id="euid">euid</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(euid)</code></div>
</pre>
  <p class="var-docstr">Returns the numeric effective user id of the caller.</p>
  
  
</li>
<li>
  <h3 class="Function" id="exec">exec</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(exec name opts)</code></div>
</pre>
  <p class="var-docstr">Executes the named program with the given arguments. opts is a map with the following keys (all optional):<br>
  :args - vector of arguments (all arguments must be strings),<br>
  :dir - if specified, working directory will be set to this value before executing the program,<br>
  :stdin - if specified, provides stdin for the program. Can be either a string or an IOReader.<br>
  If it&#39;s a string, the string&#39;s content will serve as stdin for the program. IOReader can be, for example,<br>
  *in* (in which case Joker&#39;s stdin will be redirected to the program&#39;s stdin) or the value returned by (joker.os/open).<br>
  :stdout - if specified, must be an IOWriter. It can be, for example, *out* (in which case the program&#39;s stdout will be redirected<br>
  to Joker&#39;s stdout) or the value returned by (joker.os/create).<br>
  :stderr - the same as :stdout, but for stderr.<br>
  Returns a map with the following keys:<br>
  :success - whether or not the execution was successful,<br>
  :err-msg (present iff :success if false) - string capturing error object returned by Go runtime<br>
  :exit - exit code of program (or attempt to execute it),<br>
  :out - string capturing stdout of the program (unless :stdout option was passed)<br>
  :err - string capturing stderr of the program (unless :stderr option was passed).</p>
  
  
</li>
<li>
  <h3 class="Function" id="executable">executable</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(executable)</code></div>
</pre>
  <p class="var-docstr">Returns the path name for the executable that started the current process.</p>
  
  
</li>
<li>
  <h3 class="Function" id="exists?">exists?</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(exists? path)</code></div>
</pre>
  <p class="var-docstr">Returns true if file or directory with the given path exists. Otherwise returns false.</p>
  
  
</li>
<li>
  <h3 class="Function" id="exit">exit</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(exit code)</code></div>
<div><code>(exit)</code></div>
</pre>
  <p class="var-docstr">Causes the current program to exit with the given status code (defaults to 0).</p>
  
  
</li>
<li>
  <h3 class="Function" id="expand-env">expand-env</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(expand-env s)</code></div>
</pre>
  <p class="var-docstr">Replaces ${var} or $var in the string according to the values of the current environment variables.<br>
  References to undefined variables are replaced by the empty string.</p>
  
  
</li>
<li>
  <h3 class="Function" id="get-env">get-env</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(get-env key)</code></div>
</pre>
  <p class="var-docstr">Returns the value of the environment variable named by the key or nil if the variable is not present in the environment.</p>
  
  
</li>
<li>
  <h3 class="Function" id="gid">gid</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(gid)</code></div>
</pre>
  <p class="var-docstr">Returns the numeric group id of the caller.</p>
  
  
</li>
<li>
  <h3 class="Function" id="groups">groups</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(groups)</code></div>
</pre>
  <p class="var-docstr">Returns a list of the numeric ids of groups that the caller belongs to.</p>
  
  
</li>
<li>
  <h3 class="Function" id="hostname">hostname</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(hostname)</code></div>
</pre>
  <p class="var-docstr">Returns the host name reported by the kernel.</p>
  
  
</li>
<li>
  <h3 class="Function" id="kill">kill</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"><div><code>(kill pid)</code></div>
</pre>
  <p class="var-docstr">Causes the process with the given PID to exit immediately.<br>
  Only kills the process itself, not any other processes it may have started.</p>
  
  
</li>
<li>
  <h3 class="Function" id="lchown">lchown</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(lchown name uid gid)</code></div>
</pre>
  <p class="var-docstr">Changes the numeric uid and gid of the named file. If the file is a symbolic link,<br>
  it changes the uid and gid of the link itself.</p>
  
  
</li>
<li>
  <h3 class="Function" id="link">link</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(link oldname newname)</code></div>
</pre>
  <p class="var-docstr">Creates newname as a hard link to the oldname file.</p>
  
  
</li>
<li>
  <h3 class="Function" id="ls">ls</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(ls dirname)</code></div>
</pre>
  <p class="var-docstr">Reads the directory named by dirname and returns a list of directory entries sorted by filename.<br>
  Each entry is a map with the following keys:<br>
  :name - name (String)<br>
  :size - size in bytes (Int)<br>
  :mode - mode (Int)<br>
  :dir? - true if the file is a directory (Boolean)<br>
  :modtime - modification time (unix timestamp) (Int)</p>
  
  
</li>
<li>
  <h3 class="Function" id="lstat">lstat</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(lstat filename)</code></div>
</pre>
  <p class="var-docstr">Like stat, but if the file is a symbolic link, the result describes the symbolic link.</p>
  
  
</li>
<li>
  <h3 class="Function" id="mkdir">mkdir</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(mkdir name perm)</code></div>
</pre>
  <p class="var-docstr">Creates a new directory with the specified name and permission bits.</p>
  
  
</li>
<li>
  <h3 class="Function" id="mkdir-all">mkdir-all</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(mkdir-all name perm)</code></div>
</pre>
  <p class="var-docstr">Creates a directory named path, along with any necessary parents, and returns nil, or else throws an error.<br>
  The permission bits perm (before umask) are used for all directories that mkdir-all creates.<br>
  If path is already a directory, mkdir-all does nothing and returns nil.</p>
  
  
</li>
<li>
  <h3 class="Function" id="mkdir-temp">mkdir-temp</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(mkdir-temp dir pattern)</code></div>
</pre>
  <p class="var-docstr">Creates a new temporary directory in the directory dir.<br>
  The directory name is generated by taking pattern and applying a random string to the end.<br>
  If pattern includes a &#34;*&#34;, the random string replaces the last &#34;*&#34;.<br>
  Returns the name of the new directory. If dir is the empty string,<br>
  uses the default directory for temporary files (see joker.os/temp-dir).<br>
  Multiple programs calling joker.os/mkdir-temp simultaneously will not choose the same directory.<br>
  It is the caller&#39;s responsibility to remove the directory when no longer needed.</p>
  
  
</li>
<li>
  <h3 class="Function" id="open">open</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(open name)</code></div>
</pre>
  <p class="var-docstr">Opens the named file for reading. If successful, the file can be used for reading;<br>
  the associated file descriptor has mode O_RDONLY.</p>
  
  
</li>
<li>
  <h3 class="Function" id="pagesize">pagesize</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(pagesize)</code></div>
</pre>
  <p class="var-docstr">Returns the underlying system&#39;s memory page size.</p>
  
  
</li>
<li>
  <h3 class="Function" id="path-separator?">path-separator?</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(path-separator? c)</code></div>
</pre>
  <p class="var-docstr">Reports whether c is a directory separator character.</p>
  
  
</li>
<li>
  <h3 class="Function" id="pid">pid</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(pid)</code></div>
</pre>
  <p class="var-docstr">Returns the process id of the caller.</p>
  
  
</li>
<li>
  <h3 class="Function" id="ppid">ppid</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(ppid)</code></div>
</pre>
  <p class="var-docstr">Returns the process id of the caller&#39;s parent.</p>
  
  
</li>
<li>
  <h3 class="Function" id="read-link">read-link</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(read-link name)</code></div>
</pre>
  <p class="var-docstr">Returns the destination of the named symbolic link.</p>
  
  
</li>
<li>
  <h3 class="Function" id="remove">remove</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(remove name)</code></div>
</pre>
  <p class="var-docstr">Removes the named file or (empty) directory.</p>
  
  
</li>
<li>
  <h3 class="Function" id="remove-all">remove-all</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(remove-all path)</code></div>
</pre>
  <p class="var-docstr">Removes path and any children it contains.<br>
<br>
  It removes everything it can, then panics with the first error (if<br>
  any) it encountered.</p>
  
  
</li>
<li>
  <h3 class="Function" id="rename">rename</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(rename oldpath newpath)</code></div>
</pre>
  <p class="var-docstr">Renames (moves) oldpath to newpath. If newpath already exists and is not a directory, rename replaces it.</p>
  
  
</li>
<li>
  <h3 class="Function" id="set-env">set-env</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(set-env key value)</code></div>
</pre>
  <p class="var-docstr">Sets the value of the environment variable named by the key.</p>
  
  
</li>
<li>
  <h3 class="Function" id="sh">sh</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(sh name &amp; arguments)</code></div>
</pre>
  <p class="var-docstr">Executes the named program with the given arguments. Returns a map with the following keys:<br>
      :success - whether or not the execution was successful,<br>
      :err-msg (present iff :success if false) - string capturing error object returned by Go runtime<br>
      :exit - exit code of program (or attempt to execute it),<br>
      :out - string capturing stdout of the program,<br>
      :err - string capturing stderr of the program.</p>
  
  
</li>
<li>
  <h3 class="Function" id="sh-from">sh-from</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(sh-from dir name &amp; arguments)</code></div>
</pre>
  <p class="var-docstr">Executes the named program with the given arguments and working directory set to dir.<br>
  Returns a map with the following keys:<br>
      :success - whether or not the execution was successful,<br>
      :err-msg (present iff :success if false) - string capturing error object returned by Go runtime<br>
      :exit - exit code of program (or attempt to execute it),<br>
      :out - string capturing stdout of the program,<br>
      :err - string capturing stderr of the program.</p>
  
  
</li>
<li>
  <h3 class="Function" id="signal">signal</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"><div><code>(signal pid signal)</code></div>
</pre>
  <p class="var-docstr">Sends signal to the process with the given PID.</p>
  
  
</li>
<li>
  <h3 class="Function" id="start">start</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0.1</span>
  <pre class="var-usage"><div><code>(start name opts)</code></div>
</pre>
  <p class="var-docstr">Starts a new process with the program specified by name.<br>
  opts is a map with the same keys as in exec.<br>
  Doesn&#39;t wait for the process to finish.<br>
  Returns the process&#39;s PID.</p>
  
  
</li>
<li>
  <h3 class="Function" id="stat">stat</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(stat filename)</code></div>
</pre>
  <p class="var-docstr">Returns a map describing the named file. The info map has the following attributes:<br>
  :name - base name of the file<br>
  :size - length in bytes for regular files; system-dependent for others<br>
  :mode - file mode bits<br>
  :modtime - modification time<br>
  :dir? - true if file is a directory</p>
  
  
</li>
<li>
  <h3 class="Function" id="symlink">symlink</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(symlink oldname newname)</code></div>
</pre>
  <p class="var-docstr">Creates newname as a symbolic link to oldname.</p>
  
  
</li>
<li>
  <h3 class="Function" id="temp-dir">temp-dir</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(temp-dir)</code></div>
</pre>
  <p class="var-docstr">Returns the default directory to use for temporary files.<br>
  On Unix systems, it returns $TMPDIR if non-empty, else /tmp.<br>
  On Windows, it uses GetTempPath, returning the first non-empty<br>
  value from %TMP%, %TEMP%, %USERPROFILE%, or the Windows directory.<br>
  The directory is neither guaranteed to exist nor have accessible permissions.</p>
  
  
</li>
<li>
  <h3 class="Function" id="truncate">truncate</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(truncate name size)</code></div>
</pre>
  <p class="var-docstr">Changes the size of the named file. If the file is a symbolic link, it changes the size of the link&#39;s target.</p>
  
  
</li>
<li>
  <h3 class="Function" id="uid">uid</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(uid)</code></div>
</pre>
  <p class="var-docstr">Returns the numeric user id of the caller.</p>
  
  
</li>
<li>
  <h3 class="Function" id="unset-env">unset-env</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(unset-env key)</code></div>
</pre>
  <p class="var-docstr">Unsets a single environment variable.</p>
  
  
</li>
<li>
  <h3 class="Function" id="user-cache-dir">user-cache-dir</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(user-cache-dir)</code></div>
</pre>
  <p class="var-docstr">Returns the default root directory to use for user-specific cached data.<br>
  Users should create their own application-specific subdirectory within this one and use that.<br>
<br>
  On Unix systems, it returns $XDG_CACHE_HOME as specified by https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html<br>
  if non-empty, else $HOME/.cache. On Darwin, it returns $HOME/Library/Caches. On Windows, it returns %LocalAppData%.<br>
  On Plan 9, it returns $home/lib/cache.<br>
<br>
  If the location cannot be determined (for example, $HOME is not defined), then it will throw an error.</p>
  
  
</li>
<li>
  <h3 class="Function" id="user-config-dir">user-config-dir</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(user-config-dir)</code></div>
</pre>
  <p class="var-docstr">Returns the default root directory to use for user-specific configuration data.<br>
  Users should create their own application-specific subdirectory within this one and use that.<br>
<br>
  On Unix systems, it returns $XDG_CONFIG_HOME as specified by https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html<br>
  if non-empty, else $HOME/.config. On Darwin, it returns $HOME/Library/Application Support. On Windows, it returns %AppData%.<br>
  On Plan 9, it returns $home/lib.<br>
<br>
  If the location cannot be determined (for example, $HOME is not defined), then it will throw an error.</p>
  
  
</li>
<li>
  <h3 class="Function" id="user-home-dir">user-home-dir</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(user-home-dir)</code></div>
</pre>
  <p class="var-docstr">Returns the current user&#39;s home directory.<br>
<br>
  On Unix, including macOS, it returns the $HOME environment variable. On Windows, it returns %USERPROFILE%.<br>
  On Plan 9, it returns the $home environment variable.</p>
  
  
</li>

    </ul>
  </div>
</body>
<script src="main.js"></script>
</html>
